package com.cy;

import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;
import sun.java2d.pipe.SpanIterator;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;

/**
 * Collection接口
 * 	--1,概述
 * 		Collection 层次结构 中的根接口。Collection 表示一组对象，这些对象也称		为 collection 的元素。一些 collection 允许有重复的元素，而另一些则不允		许。一些 collection 是有序的，而另一些则是无序的。
 * 	--2,常见方法
 * 		 boolean add(E e)
 *           确保此 collection 包含指定的元素（可选操作）。
 * 		 boolean addAll(Collection<? extends E> c)
 * 		          将指定 collection 中的所有元素都添加到此 collection 中（可选操作）。
 * 		 void clear()
 * 		          移除此 collection 中的所有元素（可选操作）。
 * 		 boolean contains(Object o)
 * 		          如果此 collection 包含指定的元素，则返回 true。
 * 		 boolean containsAll(Collection<?> c)
 * 		          如果此 collection 包含指定 collection 中的所有元素，则返回 true。
 * 		 boolean equals(Object o)
 * 		          比较此 collection 与指定对象是否相等。
 * 		 int hashCode()
 * 		          返回此 collection 的哈希码值。
 * 		 boolean isEmpty()
 * 		          如果此 collection 不包含元素，则返回 true。
 * 		 Iterator<E> iterator()
 * 		          返回在此 collection 的元素上进行迭代的迭代器。
 * 		 boolean remove(Object o)
 * 		          从此 collection 中移除指定元素的单个实例，如果存在的话（可选操作）。
 * 		 boolean removeAll(Collection<?> c)
 * 		          移除此 collection 中那些也包含在指定 collection 中的所有元素（可选操作）。
 * 		 boolean retainAll(Collection<?> c)
 * 		          仅保留此 collection 中那些也包含在指定 collection 的元素（可选操作）。
 * 		 int size()
 * 		          返回此 collection 中的元素数。
 * 		 Object[] toArray()
 * 		          返回包含此 collection 中所有元素的数组。
 */
public class Test3 {
    public static void main(String[] args) {

        Collection <Integer> collection = new ArrayList<>();
        collection.add(100);
        collection.add(200);
        collection.add(300);
        //  c.add("nihao");
        System.out.println(collection);
        // c.clear();

        System.out.println(collection.contains(200));
        System.out.println(collection.equals("jack"));//判断c是否和"jack"相等
        System.out.println(collection.hashCode());//获取哈希码值
        System.out.println(collection.isEmpty());
        System.out.println(collection.remove(100));//移除100元素
        System.out.println(collection);
        System.out.println(collection.size());//获取集合里元素的个数
        System.out.println("======================");

        Object [] obj =collection.toArray();
        System.out.println(Arrays.toString(obj));

        Object [] obj2 = {null,1,1.2,"jack"};

        Iterator <Integer> iterator =collection.iterator();
        while(iterator.hasNext()){
            Integer data =iterator.next();
            System.out.println(data);

        }

        for (Integer z : collection){
            System.out.println(z);
        }

        Collection <Integer> collection2=new ArrayList<>();
            collection2.add(100);
            collection2.add(200);
        System.out.println(collection.addAll(collection2));
        System.out.println(collection);
        System.out.println(collection.removeAll(collection2));
        System.out.println(collection.retainAll(collection2));
        System.out.println("=======================");
        System.out.println(collection);
        System.out.println(collection2);



    }



}
